package cn.buddha.jec.config;

import cn.buddha.jec.model.TongBaseData;
import cn.buddha.jec.util.TongExceptionConfigUtils;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @ClassName TongCommonConfig
 * @Author 友野浩二
 * @Date 2020/4/8 9:47
 * @Description 异常开关配置
 * @Version 1.0
 *
 * <pre>
 *     @ConfigurationProperties ：告诉springboot将本类中所有属性和配置文件中相关的配置进行绑定;
 *                                prefix="tong-ex"：指出将配置文件中tong-ex下的所有属性进行一一映射；
 * </pre>
 */
@Setter
@Getter
@EqualsAndHashCode(callSuper = false)
@ConfigurationProperties(prefix = "tong-ex")
@Slf4j
public class TongExceptionProperties extends TongBaseData {

    /**
     * 业务逻辑处理之前公共处理的异常开关
     */
//    @Value(value = "${tong-ex.pre.handler.enable:false}")
//    private Boolean tongExPreHandlerEnable;
    private Boolean preHandlerEnable = true;

    /**
     * 真正业务逻辑处理的异常开关
     */
//    @Value(value = "${tong-ex.middle.handler.enable:false}")
//    private Boolean tongExMiddleHandlerEnable;
    private Boolean middleHandlerEnable = true;

    /**
     * 业务逻辑处理之后公共处理的异常开关
     */
//    @Value(value = "${tong-ex.post.handler.enable:false}")
//    private Boolean tongExPostHandlerEnable;
    private Boolean postHandlerEnable = true;

    //    @PostConstruct
    public void init() {
        TongExceptionConfigUtils.setExEnable(this);
    }

}
